<!DOCTYPE html>
<html>
<head><meta name="generator" content="Hexo 3.8.0">
  <meta charset="utf-8">
  

  
  <title>Python-唯一值Uuid | Huafeihua</title>
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  
  
  
  <meta name="description" content="UUID是128位的全局唯一标识符，通常由32字节的字符串表示。GUID它通过MAC地址、时间戳、命名空间、随机数、伪随机数来保证生成ID的唯一性。    UUID主要有五个算法，也就是五种方法来实现：  1、uuid1()——基于时间戳           由MAC地址、当前时间戳、随机数生成。可以保证全球范围内的唯一性，          但MAC的使用同时带来安全性问题，局域网中可以使用IP">
<meta name="keywords" content="python">
<meta property="og:type" content="article">
<meta property="og:title" content="Python-唯一值Uuid">
<meta property="og:url" content="http://malone00.gitee.io/huafeihua/2019/01/22/python/唯一值uuid/index.html">
<meta property="og:site_name" content="Huafeihua">
<meta property="og:description" content="UUID是128位的全局唯一标识符，通常由32字节的字符串表示。GUID它通过MAC地址、时间戳、命名空间、随机数、伪随机数来保证生成ID的唯一性。    UUID主要有五个算法，也就是五种方法来实现：  1、uuid1()——基于时间戳           由MAC地址、当前时间戳、随机数生成。可以保证全球范围内的唯一性，          但MAC的使用同时带来安全性问题，局域网中可以使用IP">
<meta property="og:locale" content="zh-CN">
<meta property="og:updated_time" content="2019-01-22T08:53:25.221Z">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Python-唯一值Uuid">
<meta name="twitter:description" content="UUID是128位的全局唯一标识符，通常由32字节的字符串表示。GUID它通过MAC地址、时间戳、命名空间、随机数、伪随机数来保证生成ID的唯一性。    UUID主要有五个算法，也就是五种方法来实现：  1、uuid1()——基于时间戳           由MAC地址、当前时间戳、随机数生成。可以保证全球范围内的唯一性，          但MAC的使用同时带来安全性问题，局域网中可以使用IP">
  
    <link rel="alternate" href="/huafeihua/atom.xml" title="Huafeihua" type="application/atom+xml">
  
  
    <link rel="icon" href="/images/tmp.jpg">
  
  
    <link href="//fonts.googleapis.com/css?family=Source+Code+Pro" rel="stylesheet" type="text/css">
  
  <link rel="stylesheet" href="/huafeihua/css/style.css">
  <link rel="stylesheet" href="/huafeihua/css/highlight.css">
</head>
</html>
<body>
  <div id="fullpage" class="mobile-nav-right">
    
      <div id="wrapper" title="图片来自网络">
    
    
      <header id="header">
  <div id="nav-toggle" class="nav-toggle"></div>
  <div class="head-box global-width">
    <nav class="nav-box nav-right">
      
        <a class="nav-item" href="/huafeihua/" title="">首页</a>
      
        <a class="nav-item" href="/huafeihua/categories" title="">分类</a>
      
        <a class="nav-item" href="/huafeihua/archives" title="">归档</a>
      
        <a class="nav-item" href="/huafeihua/tags" title="">标签</a>
      
        <a class="nav-item" href="/huafeihua/about" title="">关于</a>
      
    </nav>
  </div>
</header>
      <div id="middlecontent" title class="global-width sidebar-left">
        <section id="main"><article id="post-python/唯一值uuid" class="article global-container article-type-post" itemscope="" itemprop="blogPost">
  
    <header class="article-header">
      
  
    <h1 class="article-title" itemprop="name">
      Python-唯一值Uuid
    </h1>
  

    </header>
  
  <div class="article-meta">
    <a href="/huafeihua/2019/01/22/python/唯一值uuid/" class="article-date">
  <time datetime="2019-01-22T09:58:59.000Z" itemprop="datePublished">2019-01-22</time>
</a>
    
  <div class="article-category">
    <a class="article-category-link" href="/huafeihua/categories/python/">python</a>
  </div>

    
  <ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/huafeihua/tags/python/">python</a></li></ul>

  </div>
  
    <span id="busuanzi_container_page_pv">
      本文总阅读量<span id="busuanzi_value_page_pv"></span>次
    </span>
  

  <div class="article-inner">
    
    <div class="article-content article-content-doorframe" itemprop="articleBody">
      
        <p>UUID是128位的全局唯一标识符，通常由32字节的字符串表示。<br>GUID<br>它通过MAC地址、时间戳、命名空间、随机数、伪随机数来保证生成ID的唯一性。<br>    UUID主要有五个算法，也就是五种方法来实现：</p>
<pre><code> 1、uuid1()——基于时间戳

         由MAC地址、当前时间戳、随机数生成。可以保证全球范围内的唯一性，
         但MAC的使用同时带来安全性问题，局域网中可以使用IP来代替MAC。

 2、uuid2()——基于分布式计算环境DCE（Python中没有这个函数）

          算法与uuid1相同，不同的是把时间戳的前4位置换为POSIX的UID。
          实际中很少用到该方法。

3、uuid3()——基于名字的MD5散列值

          通过计算名字和命名空间的MD5散列值得到，保证了同一命名空间中不同名字的唯一性，
          和不同命名空间的唯一性，但同一命名空间的同一名字生成相同的uuid。    

 4、uuid4()——基于随机数

          由伪随机数得到，有一定的重复概率，该概率可以计算出来。

 5、uuid5()——基于名字的SHA-1散列值

          算法与uuid3相同，不同的是使用 Secure Hash Algorithm 1 算法
</code></pre><p>使用方面：</p>
<pre><code>首先，Python中没有基于DCE的，所以uuid2可以忽略；
其次，uuid4存在概率性重复，由无映射性，最好不用；
再次，若在Global的分布式计算环境下，最好用uuid1；
最后，若有名字的唯一性要求，最好用uuid3或uuid5。
</code></pre><p>uuid.uuid1-5<br><div class="highlight-box" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" contenteditable="true" data-rel="PLAIN"><figure class="iseeu highlight /plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line"># -*- coding: utf-8 -*-</span><br><span class="line"></span><br><span class="line">   import uuid</span><br><span class="line"></span><br><span class="line">   name = &quot;test_name&quot;</span><br><span class="line">   namespace = &quot;test_namespace&quot;</span><br><span class="line"></span><br><span class="line">   print uuid.uuid1()  # 带参的方法参见Python Doc</span><br><span class="line">   print uuid.uuid3(namespace, name)</span><br><span class="line">   print uuid.uuid4()</span><br><span class="line">   print uuid.uuid5(namespace, name)</span><br></pre></td></tr></table></figure></div></p>
<p>2不能用<br>一般用3或5即可</p>
<p>namespace ,name<br>namespace<br>uuid3 uuid5 这两个函数，第一个参数是一个 namespace 类型不是 str 而是一个 UUID</p>
<p>这里可以选择以下值中的一个，根据字符串的内容选择 NAMESPACE 下面是官方文档内容</p>
<pre><code>uuid.NAMESPACE_DNS

When this namespace is specified, the name string is a fully-qualified domain
name.

uuid.NAMESPACE_URL

When this namespace is specified, the name string is a URL.

uuid.NAMESPACE_OID

When this namespace is specified, the name string is an ISO OID.

uuid.NAMESPACE_X500

When this namespace is specified, the name string is an X.500 DN in DER or a
text output format.
</code></pre>
      
    </div>
    
      <footer class="article-footer">
        完
      </footer>
    
  </div>
  
    
<nav id="article-nav">
  <div class="article-nav-block">
    
      <a href="/huafeihua/2019/01/22/python/图片下载/" id="article-nav-newer" class="article-nav-link-wrap">
        <strong class="article-nav-caption"></strong>
        <div class="article-nav-title">
          
            Python-图片下载
          
        </div>
      </a>
    
  </div>
  <div class="article-nav-block">
    
      <a href="/huafeihua/2019/01/22/python/python语法/" id="article-nav-older" class="article-nav-link-wrap">
        <div class="article-nav-title">Python-语法</div>
        <strong class="article-nav-caption"></strong>
      </a>
    
  </div>
</nav>

    
<div id="gitmentContainer"></div>
<link rel="stylesheet" href="https://imsun.github.io/gitment/style/default.css">
<script src="https://imsun.github.io/gitment/dist/gitment.browser.js"></script>
<script>
var gitment = new Gitment({
  owner: 'malone00',
  repo: 'https://gitee.com/malone00/huafeihua.git',
  oauth: {
    client_id: '61b3470a9440579b58b3',
    client_secret: '889ecdcc18f7687dd9f5b36feb85080baf8a6c48',
  },
})
gitment.render('gitmentContainer')
</script>

  
  
</article>
</section>
        <aside id="sidebar">
  
    <div class="widget-box">
  <div class="avatar-box">
    <img class="avatar" src="/huafeihua/images/default-avatar.jpeg" title="图片来自网络">
    <h3 class="avatar-name">
      
        听风看雨
      
    </h3>
    <p class="avatar-slogan">
      抗揍的愤青，半个IT男。
    </p>
  </div>
</div>


  
    
  <div class="widget-box">
    <h3 class="widget-title">分类</h3>
    <div class="widget">
      <ul class="category-list"><li class="category-list-item"><a class="category-list-link" href="/huafeihua/categories/Linux/">Linux</a></li><li class="category-list-item"><a class="category-list-link" href="/huafeihua/categories/python/">python</a></li><li class="category-list-item"><a class="category-list-link" href="/huafeihua/categories/入坑/">入坑</a></li><li class="category-list-item"><a class="category-list-link" href="/huafeihua/categories/技巧/">技巧</a></li><li class="category-list-item"><a class="category-list-link" href="/huafeihua/categories/自动化/">自动化</a></li><li class="category-list-item"><a class="category-list-link" href="/huafeihua/categories/项目管理/">项目管理</a></li></ul>
    </div>
  </div>


  
    
  <div class="widget-box">
    <h3 class="widget-title">标签</h3>
    <div class="widget">
      <ul class="tag-list"><li class="tag-list-item"><a class="tag-list-link" href="/huafeihua/tags/Appium/">Appium</a></li><li class="tag-list-item"><a class="tag-list-link" href="/huafeihua/tags/Docker/">Docker</a></li><li class="tag-list-item"><a class="tag-list-link" href="/huafeihua/tags/Jenkins/">Jenkins</a></li><li class="tag-list-item"><a class="tag-list-link" href="/huafeihua/tags/Nginx/">Nginx</a></li><li class="tag-list-item"><a class="tag-list-link" href="/huafeihua/tags/Selenium/">Selenium</a></li><li class="tag-list-item"><a class="tag-list-link" href="/huafeihua/tags/Ubuntu/">Ubuntu</a></li><li class="tag-list-item"><a class="tag-list-link" href="/huafeihua/tags/centos/">centos</a></li><li class="tag-list-item"><a class="tag-list-link" href="/huafeihua/tags/flask/">flask</a></li><li class="tag-list-item"><a class="tag-list-link" href="/huafeihua/tags/python/">python</a></li><li class="tag-list-item"><a class="tag-list-link" href="/huafeihua/tags/rabbit/">rabbit</a></li><li class="tag-list-item"><a class="tag-list-link" href="/huafeihua/tags/sql/">sql</a></li><li class="tag-list-item"><a class="tag-list-link" href="/huafeihua/tags/ubuntu/">ubuntu</a></li><li class="tag-list-item"><a class="tag-list-link" href="/huafeihua/tags/效率/">效率</a></li><li class="tag-list-item"><a class="tag-list-link" href="/huafeihua/tags/爬虫/">爬虫</a></li></ul>
    </div>
  </div>


  
    
  <div class="widget-box">
    <h3 class="widget-title">标签云</h3>
    <div class="widget tagcloud">
      <a href="/huafeihua/tags/Appium/" style="font-size: 10px;">Appium</a> <a href="/huafeihua/tags/Docker/" style="font-size: 13.33px;">Docker</a> <a href="/huafeihua/tags/Jenkins/" style="font-size: 10px;">Jenkins</a> <a href="/huafeihua/tags/Nginx/" style="font-size: 10px;">Nginx</a> <a href="/huafeihua/tags/Selenium/" style="font-size: 13.33px;">Selenium</a> <a href="/huafeihua/tags/Ubuntu/" style="font-size: 10px;">Ubuntu</a> <a href="/huafeihua/tags/centos/" style="font-size: 16.67px;">centos</a> <a href="/huafeihua/tags/flask/" style="font-size: 20px;">flask</a> <a href="/huafeihua/tags/python/" style="font-size: 20px;">python</a> <a href="/huafeihua/tags/rabbit/" style="font-size: 10px;">rabbit</a> <a href="/huafeihua/tags/sql/" style="font-size: 10px;">sql</a> <a href="/huafeihua/tags/ubuntu/" style="font-size: 10px;">ubuntu</a> <a href="/huafeihua/tags/效率/" style="font-size: 10px;">效率</a> <a href="/huafeihua/tags/爬虫/" style="font-size: 10px;">爬虫</a>
    </div>
  </div>

  
    
  <div class="widget-box">
    <h3 class="widget-title">归档</h3>
    <div class="widget">
      <ul class="archive-list"><li class="archive-list-item"><a class="archive-list-link" href="/huafeihua/archives/2019/01/">一月 2019</a></li></ul>
    </div>
  </div>

  
    
  <div class="widget-box">
    <h3 class="widget-title">最新文章</h3>
    <div class="widget">
      <ul>
        
          <li>
            <a href="/huafeihua/2019/01/29/python-mq/">python rabbitmq</a>
          </li>
        
          <li>
            <a href="/huafeihua/2019/01/22/python/Unittest/">Python-Unittest</a>
          </li>
        
          <li>
            <a href="/huafeihua/2019/01/22/项目管理/项目管理2018-07-23/">U项目管理</a>
          </li>
        
          <li>
            <a href="/huafeihua/2019/01/22/随笔/-Kanboard-安装之Windows/">Kanboard 安装之Windows</a>
          </li>
        
          <li>
            <a href="/huafeihua/2019/01/22/运维部署/单网卡实现内外网访问/">单网卡实现内外网访问</a>
          </li>
        
      </ul>
    </div>
  </div>

  
</aside>
      </div>
      <footer id="footer">
  <div class="foot-box global-width">
    &copy; 2019 Edwin Ma &nbsp;&nbsp;
    驱动于 <a href="http://hexo.io/" target="_blank">Hexo</a><br>
    <script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
    <span id="busuanzi_container_site_pv">阁下是第<span id="busuanzi_value_site_pv"></span>个访客</span>
  </div>
</footer>
      <script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>

<script src="/js/jquery-2.0.3.min.js"></script>

  <link rel="stylesheet" href="/huafeihua/fancybox/jquery.fancybox.css">
  <script src="/huafeihua/fancybox/jquery.fancybox.pack.js"></script>


<script src="/huafeihua/js/script.js"></script>



    </div>
    <nav id="mobile-nav" class="mobile-nav-box">
  <div class="mobile-nav-img mobile-nav-top"></div>
  
    <a href="/huafeihua/" class="mobile-nav-link">首页</a>
  
    <a href="/huafeihua/categories" class="mobile-nav-link">分类</a>
  
    <a href="/huafeihua/archives" class="mobile-nav-link">归档</a>
  
    <a href="/huafeihua/tags" class="mobile-nav-link">标签</a>
  
    <a href="/huafeihua/about" class="mobile-nav-link">关于</a>
  
  <div class="mobile-nav-img  mobile-nav-bottom"></div>
</nav>    
  </div>
</body>
</html>